package cn.hallele.bbts.core.common.exceptions;

import lombok.Getter;

/**
 * BBTSException,禁止抛出该异常，只能抛出该异常的子异常
 *
 * @author anle5
 * @since 2023/11/29 星期三 22:57
 */
@Getter
public class BBTSException extends RuntimeException {
    /**
     * 错误码填充参数
     */
    private Object[] args = new Object[]{};

    /**
     * BBTSException
     */
    public BBTSException() {
        super();
    }

    /**
     * BBTSException
     *
     * @param message message
     */
    public BBTSException(String message) {
        super(message);
    }

    /**
     * BBTSException
     *
     * @param message message
     * @param args    args
     */
    public BBTSException(String message, Object... args) {
        super(message);
        this.args = args;
    }

    /**
     * BBTSException
     *
     * @param message message
     * @param cause   cause
     * @param args    args
     */
    public BBTSException(String message, Throwable cause, Object... args) {
        super(message, cause);
        this.args = args;
    }

    /**
     * BBTSException
     *
     * @param cause cause
     */
    public BBTSException(Throwable cause) {
        super(cause);
    }

    /**
     * BBTSException
     *
     * @param message            message
     * @param cause              cause
     * @param enableSuppression  enableSuppression
     * @param writableStackTrace writableStackTrace
     * @param args               args
     */
    protected BBTSException(
            String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace, Object... args) {
        super(message, cause, enableSuppression, writableStackTrace);
        this.args = args;
    }
}
